home *** CD-ROM | disk | FTP | other *** search
/ Ham Radio 2000 #2 / Ham Radio 2000 - Volume 2.iso / HAMV2 / MISC / HCAL-27 / COILEQUA.BAS (.txt) < prev    next >
Encoding:
GW-BASIC  |  1997-01-28  |  3.9 KB  |  129 lines

  1. 10  'COILEQUA - Coil Equation Calculator - 30 NOV 95 rev. 27 SEP 96
  2. 20  CLS:KEY OFF
  3. 30  IF EX$=""THEN EX$="EXIT"
  4. 40  COLOR 7,0,1
  5. 50  PI=3.14159
  6. 60  A$="####.##"
  7. 70  UL$=STRING$(80,205)
  8. 80  '
  9. 90  '.....start
  10. 100  CLS
  11. 110  COLOR 15,2
  12. 120  PRINT " COIL EQUATION CALCULATOR";TAB(57);"by George Murphy VE3ERP ";
  13. 130  COLOR 1,0:PRINT STRING$(80,223);
  14. 140  COLOR 7,0
  15. 150  T=7
  16. 160  PRINT TAB(T);
  17. 170  PRINT "This program solves only the basic equations for close-wound single-"
  18. 180  PRINT TAB(T);
  19. 190  PRINT "layer air-core coils as they appear in recent editions of the ARRL"
  20. 200  PRINT TAB(T);
  21. 210  PRINT "HANDBOOK. There are several other HAMCALC programs for providing"
  22. 220  PRINT TAB(T);
  23. 230  PRINT "more specific inductance and coil design information."
  24. 240  PRINT UL$;
  25. 250  PRINT " Press number in < > to:
  26. 260  PRINT UL$;
  27. 270  PRINT "  < 1 > calculate coil specifications for a given inductance"
  28. 280  PRINT "  < 2 > calculate inductance of a specific coil"
  29. 290  PRINT UL$;
  30. 300  PRINT "  < 0 > EXIT"
  31. 310  Z$=INKEY$
  32. 320  IF Z$="0"THEN CLS:RUN EX$
  33. 330  IF Z$="1"THEN X=0:GOTO 370
  34. 340  IF Z$="2"THEN X=1:GOTO 370
  35. 350  GOTO 310
  36. 360  '
  37. 370  '.....start
  38. 380  PRINT UL$;
  39. 390  PRINT " Press number in < > to choose standard units of measure:"
  40. 400  PRINT UL$;
  41. 410  PRINT "   < 1 >  Metric"
  42. 420  PRINT "   < 2 >  U.S.A./Imperial"
  43. 430  Z$=INKEY$
  44. 440  IF Z$="1"THEN UM=25.4:UM$=" mm.":GOTO 470
  45. 450  IF Z$="2"THEN UM=1:UM$=" in.":GOTO 470
  46. 460  GOTO 430
  47. 470  VIEW PRINT 3 TO 24:CLS:VIEW PRINT:LOCATE 3
  48. 480  '
  49. 490  '.....data input
  50. 500  U=0:R=0:D=0:L=0:N=0:T=0:S=0
  51. 510  CLS
  52. 520  PRINT "INPUT known factors (if factor unknown, press <ENTER>):"
  53. 530  PRINT UL$;
  54. 540  IF U=0 AND X=0 THEN INPUT " Inductance (>H).................";U:GOSUB 660
  55. 550  IF R=0 AND X=0 THEN INPUT " Coil length-to-diameter ratio...";R:GOSUB 660
  56. 560  IF S=0 AND X=0 THEN PRINT " Turn spacing (";UM$;").............";
  57. 570  IF S=0 AND X=0 THEN INPUT S:S=S/UM:GOSUB 660
  58. 580  IF N=0 AND X=1 THEN INPUT " Number of turns.................";N:GOSUB 660
  59. 590  IF D=0 AND X=1 THEN PRINT " Coil diameter (";UM$;")............";
  60. 600  IF D=0 AND X=1 THEN INPUT D:D=D/UM:GOSUB 660
  61. 610  IF L=0 AND X=1 THEN PRINT " Coil length (";UM$;")..............";
  62. 620  IF L=0 AND X=1 THEN INPUT L:L=L/UM:GOSUB 660
  63. 630  IF T=0 AND X=1 THEN INPUT " Turns per inch..................";T:GOSUB 660
  64. 640  CLS:GOTO 520
  65. 650  '
  66. 660  '.....calculate
  67. 670  IF U=0 AND D*L*N>0 THEN U=(D^2*N^2)/(18*D+40*L)
  68. 680  IF R=0 AND L*D>0   THEN R=L/D:GOTO 660
  69. 690  IF R=0 AND N*T*D>0 THEN R=N/(D*T):GOTO 660
  70. 700  IF S=0 AND T>0     THEN S=1/T
  71. 710  IF S=0 AND L*N>0   THEN S=L/N:GOTO 660
  72. 720  IF S=0 AND R*D*N>0 THEN S=R*D/N:GOTO 660
  73. 730  IF L=0 AND R*D>0   THEN L=R*D:GOTO 660
  74. 740  IF L=0 AND N*T>0   THEN L=N/T:GOTO 660
  75. 750  IF L=0 AND N*S>0   THEN L=N*S:GOTO 660
  76. 760  IF D=0 AND L*R>0   THEN D=L/R:GOTO 660
  77. 770  IF D=0 AND N*R*T>0 THEN D=N/(R*T):GOTO 660
  78. 780  IF N=0 AND U*D*L>0 THEN N=SQR(U*(18*D+40*L))/D:GOTO 660
  79. 790  IF N=0 AND T*L>0   THEN N=T*L:GOTO 660
  80. 800  IF N=0 AND S*L>0   THEN N=L/S:GOTO 660
  81. 810  IF N=0 AND R*T*D>0 THEN N=R*T*D:GOTO 660
  82. 820  IF N=0 AND U*R*S>0 THEN 890
  83. 830  IF T=0 AND S>0     THEN T=1/S
  84. 840  IF T=0 AND N*L>0   THEN T=N/L:GOTO 660
  85. 850  IF T=0 AND N*R*D>0 THEN T=N/(R*D):GOTO 660
  86. 860  IF U*R*S*L*D*N*T>0 THEN 970
  87. 870  RETURN
  88. 880  '
  89. 890  '.....calculate coil size and number of turns by iteration
  90. 900  CLS:PRINT " .....ITERATING.....please wait....."
  91. 910  D=0.25                     'initial coil diameter
  92. 920  L=R*D                     'coil length where R= length-to-diameter ratio
  93. 930  N=SQR(U*(18*D+40*L))/D    'number of turns
  94. 940  IF (N*S)>L THEN D=D+0.000999999:GOTO 920   'where S= spacing between turns
  95. 950  GOTO 660
  96. 960  '
  97. 970  '.....print
  98. 980  CLS
  99. 990  PRINT " CLOSE-WOUND SINGLE-LAYER AIR-CORE COIL"
  100. 1000  PRINT UL$;
  101. 1010  IF UM=1 THEN A$=A$ ELSE A$="####.#"
  102. 1020  PRINT " INDUCTANCE..................";USING A$;U;:PRINT " >H"
  103. 1030  PRINT " Diameter....................";USING A$;D*UM;:PRINT UM$
  104. 1040  PRINT " Length......................";USING A$;L*UM;:PRINT UM$
  105. 1050  PRINT " Length-to-diameter ratio....";USING A$;R;:PRINT ":1"
  106. 1060  PRINT " Number of turns.............";USING A$;N
  107. 1070  PRINT " Turns per 25 mm (inch)......";USING A$;T
  108. 1080  PRINT " Turn spacing................";USING A$;S*UM;:PRINT UM$;" c.c."
  109. 1090  W=SQR((PI*D)^2+S^2)*N
  110. 1100  IF UM=25.4 THEN UM=2.54:UM$=" cm."
  111. 1110  PRINT " Amount of wire in coil......";USING A$;W*UM;:PRINT UM$
  112. 1120  PRINT UL$;
  113. 1130  GOSUB 1160
  114. 1140  GOTO 90
  115. 1150  '
  116. 1160  'HARDCOPY
  117. 1170  GOSUB 1280:LOCATE 25,2:COLOR 14,6
  118. 1180  PRINT " Press 1 to print screen, 2 to print screen & ";
  119. 1190  PRINT "advance paper, or 3 to continue.";:COLOR 7,0
  120. 1200  Z$=INKEY$:IF Z$="3"THEN GOSUB 1280:RETURN
  121. 1210  IF Z$="1"OR Z$="2"THEN GOSUB 1280:GOTO 1230
  122. 1220  GOTO 1200
  123. 1230  FOR QX=1 TO 24:FOR QY=1 TO 80
  124. 1240  LPRINT CHR$(SCREEN(QX,QY));
  125. 1250  NEXT QY:NEXT QX
  126. 1260  IF Z$="2"THEN LPRINT CHR$(12)
  127. 1270  GOTO 1170
  128. 1280  LOCATE 25,1:PRINT STRING$(80,32);:RETURN
  129.